﻿using Little.Soldier.SWIFT;
using Little.Soldier.SWIFT.Definition;
using System.Collections.Generic;
using System.ComponentModel;

namespace Little.Soldier.SWIFT.Messages.Category1
{
  public class MT102PLUS : SwiftMessage
  {
    private static SwiftMessageDefinition MessageDefinition;
    private static SwiftTagSequenceDefinition U0002;
    private static SwiftTagDefinition U0003;
    private static SwiftTagSubItemDefinition U0004;
    private static SwiftTagDefinition U0005;
    private static SwiftTagSubItemDefinition U0006;
    private static SwiftTagChoiceDefinition U0007;
    private static SwiftTagDefinition U0008;
    private static SwiftTagSubItemDefinition U000E;
    private static SwiftTagSubItemDefinition U000F;
    private static SwiftTagSubItemDefinition U0010;
    private static SwiftTagDefinition U0011;
    private static SwiftTagSubItemDefinition U0012;
    private static SwiftTagSubItemDefinition U0013;
    private static SwiftTagSubItemDefinition U0014;
    private static SwiftTagSubItemDefinition U0015;
    private static SwiftTagSubItemDefinition U0016;
    private static SwiftTagSubItemDefinition U0017;
    private static SwiftTagSubItemDefinition U0018;
    private static SwiftTagDefinition U0019;
    private static SwiftTagSubItemDefinition U001A;
    private static SwiftTagSubItemDefinition U001B;
    private static SwiftTagSubItemDefinition U001C;
    private static SwiftTagDefinition U001D;
    private static SwiftTagSubItemDefinition U001E;
    private static SwiftTagSubItemDefinition U001F;
    private static SwiftTagDefinition U007F;
    private static SwiftTagSubItemDefinition U0080;
    private static SwiftTagDefinition U0081;
    private static SwiftTagDefinition U0082;
    private static SwiftTagSubItemDefinition U0083;
    private static SwiftTagDefinition U0084;
    private static SwiftTagSubItemDefinition U0086;
    private static SwiftTagSequenceDefinition U0087;
    private static SwiftTagDefinition U0088;
    private static SwiftTagSubItemDefinition U0089;
    private static SwiftTagDefinition U008A;
    private static SwiftTagSubItemDefinition U008B;
    private static SwiftTagSubItemDefinition U008C;
    private static SwiftTagChoiceDefinition U008D;
    private static SwiftTagDefinition U008E;
    private static SwiftTagSubItemDefinition U008F;
    private static SwiftTagSubItemDefinition U0090;
    private static SwiftTagSubItemDefinition U0091;
    private static SwiftTagDefinition U0092;
    private static SwiftTagSubItemDefinition U0093;
    private static SwiftTagSubItemDefinition U0094;
    private static SwiftTagSubItemDefinition U0095;
    private static SwiftTagSubItemDefinition U0096;
    private static SwiftTagSubItemDefinition U0097;
    private static SwiftTagSubItemDefinition U0098;
    private static SwiftTagSubItemDefinition U0099;
    private static SwiftTagDefinition U009A;
    private static SwiftTagSubItemDefinition U009B;
    private static SwiftTagSubItemDefinition U009C;
    private static SwiftTagSubItemDefinition U009D;
    private static SwiftTagDefinition U009E;
    private static SwiftTagSubItemDefinition U009F;
    private static SwiftTagSubItemDefinition U0001U0002;
    private static SwiftTagDefinition U0002U0002;
    private static SwiftTagSubItemDefinition U0003U0002;
    private static SwiftTagSubItemDefinition U0004U0002;
    private static SwiftTagChoiceDefinition U0005U0002;
    private static SwiftTagDefinition U0006U0002;
    private static SwiftTagSubItemDefinition U0007U0002;
    private static SwiftTagSubItemDefinition U0008U0002;
    private static SwiftTagSubItemDefinition U000EU0002;
    private static SwiftTagDefinition U000FU0002;
    private static SwiftTagSubItemDefinition U0010U0002;
    private static SwiftTagSubItemDefinition U0011U0002;
    private static SwiftTagSubItemDefinition U0012U0002;
    private static SwiftTagDefinition U0013U0002;
    private static SwiftTagDefinition U0014U0002;
    private static SwiftTagSubItemDefinition U0015U0002;
    private static SwiftTagDefinition U0016U0002;
    private static SwiftTagDefinition U0017U0002;
    private static SwiftTagSubItemDefinition U0018U0002;
    private static SwiftTagSubItemDefinition U0019U0002;
    private static SwiftTagDefinition U001AU0002;
    private static SwiftTagSubItemDefinition U001BU0002;
    private static SwiftTagDefinition U001CU0002;
    private static SwiftTagSubItemDefinition U001DU0002;
    private static SwiftTagSubItemDefinition U001EU0002;
    private static SwiftTagDefinition U001FU0002;
    private static SwiftTagSubItemDefinition U007FU0002;
    private static SwiftTagSubItemDefinition U0080U0002;
    private static SwiftTagDefinition U0081U0002;
    private static SwiftTagSubItemDefinition U0082U0002;
    private static SwiftTagSequenceDefinition U0083U0002;
    private static SwiftTagDefinition U0084U0002;
    private static SwiftTagSubItemDefinition U0086U0002;
    private static SwiftTagSubItemDefinition U0087U0002;
    private static SwiftTagSubItemDefinition U0088U0002;
    private static SwiftTagDefinition U0089U0002;
    private static SwiftTagSubItemDefinition U008AU0002;
    private static SwiftTagDefinition U008BU0002;
    private static SwiftTagSubItemDefinition U008CU0002;
    private static SwiftTagSubItemDefinition U008DU0002;
    private static SwiftTagDefinition U008EU0002;
    private static SwiftTagSubItemDefinition U008FU0002;
    private static SwiftTagSubItemDefinition U0090U0002;
    private static SwiftTagSubItemDefinition U0091U0002;
    private static SwiftTagSubItemDefinition U0092U0002;
    private static SwiftTagSubItemDefinition U0093U0002;
    private static SwiftTagSubItemDefinition U0094U0002;
    private static SwiftTagChoiceDefinition U0095U0002;
    private static SwiftTagDefinition U0096U0002;
    private static SwiftTagSubItemDefinition U0097U0002;
    private static SwiftTagSubItemDefinition U0098U0002;
    private static SwiftTagDefinition U0099U0002;
    private static SwiftTagSubItemDefinition U009AU0002;
    private static SwiftTagDefinition U009BU0002;
    private static SwiftTagSubItemDefinition U009CU0002;
    private static SwiftTagSubItemDefinition U009DU0002;
    private static SwiftTagDefinition U009EU0002;
    private static SwiftTagSubItemDefinition U009FU0002;
    private static SwiftTagSubItemDefinition U0001U0003;
    private static SwiftTagSubItemDefinition U0002U0003;
    private static SwiftTagSubItemDefinition U0003U0003;
    private static SwiftTagSubItemDefinition U0004U0003;
    private static SwiftTagSubItemDefinition U0005U0003;

    [Description("General Information")]
    public MT102PLUS.SequenceAClass SequenceA
    {
      get
      {
        return new MT102PLUS.SequenceAClass((SwiftElement) this, 0, false);
      }
    }

    [Description("Transaction Details")]
    public MT102PLUS.SequenceBClass[] SequenceB
    {
      get
      {
        int index = -1;
        List<MT102PLUS.SequenceBClass> list = new List<MT102PLUS.SequenceBClass>();
        int count;
        do
        {
          ++index;
          MT102PLUS.SequenceBClass sequenceBclass = new MT102PLUS.SequenceBClass((SwiftElement) this, index, false);
          count = this.ListTags((SwiftElement) sequenceBclass).Count;
          if (count > 0)
            list.Add(sequenceBclass);
        }
        while (count > 0);
        return list.ToArray();
      }
    }

    [Description("Settlement Details")]
    public MT102PLUS.SequenceCClass SequenceC
    {
      get
      {
        return new MT102PLUS.SequenceCClass((SwiftElement) this, 0, false);
      }
    }

    public MT102PLUS()
      : base(true)
    {
    }

    public MT102PLUS(SwiftMessage message)
      : base(message)
    {
    }

    public MT102PLUS.SequenceBClass AddSequenceB()
    {
      return new MT102PLUS.SequenceBClass((SwiftElement) this, this.SequenceB.Length, true);
    }

    public void RemoveSequenceB(MT102PLUS.SequenceBClass sequence)
    {
      foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
        this.RemoveTag(tag);
    }

    internal override SwiftMessageDefinition MsgDefinition()
    {
      return MT102PLUS.MessageDefinition;
    }

    protected override void InitSwiftMessageDefinition()
    {
      MT102PLUS.MessageDefinition = new SwiftMessageDefinition("MT102PLUS", "Multiple Customer Credit Transfer");
      MT102PLUS.U0002 = new SwiftTagSequenceDefinition("SequenceA", "General Information");
      MT102PLUS.U0003 = new SwiftTagDefinition("FileReference_A_20", "File Reference");
      MT102PLUS.U0003.TagName = ":20:";
      MT102PLUS.U0004 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT102PLUS.U0003.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0004);
      MT102PLUS.U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0003);
      MT102PLUS.U0005 = new SwiftTagDefinition("BankOperationCode_A_23", "Bank Operation Code");
      MT102PLUS.U0005.TagName = ":23:";
      MT102PLUS.U0006 = new SwiftTagSubItemDefinition("Code", "Bank Operation Code");
      MT102PLUS.U0005.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0006);
      MT102PLUS.U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0005);
      MT102PLUS.U0007 = new SwiftTagChoiceDefinition("Choice", "");
      MT102PLUS.U0007.Mandatory = false;
      MT102PLUS.U0007.Multiple = true;
      MT102PLUS.U0008 = new SwiftTagDefinition("OrderingCustomer_A_50A", "Ordering Customer");
      MT102PLUS.U0008.TagName = ":50A:";
      MT102PLUS.U000E = new SwiftTagSubItemDefinition("Account", "Account");
      MT102PLUS.U000E.Mandatory = false;
      MT102PLUS.U000F = new SwiftTagSubItemDefinition("Account_1", "");
      MT102PLUS.U000E.Elements.Add((SwiftDefinitionElement) MT102PLUS.U000F);
      MT102PLUS.U0008.Elements.Add((SwiftDefinitionElement) MT102PLUS.U000E);
      MT102PLUS.U0010 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT102PLUS.U0008.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0010);
      MT102PLUS.U0007.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0008);
      MT102PLUS.U0011 = new SwiftTagDefinition("OrderingCustomer_A_50F", "Ordering Customer");
      MT102PLUS.U0011.TagName = ":50F";
      MT102PLUS.U0012 = new SwiftTagSubItemDefinition("OrderingCustomerIdentification_1", "Account");
      MT102PLUS.U0013 = new SwiftTagSubItemDefinition("Account", "");
      MT102PLUS.U0012.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0013);
      MT102PLUS.U0011.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0012);
      MT102PLUS.U0014 = new SwiftTagSubItemDefinition("OrderingCustomerIdentification_2", "Ordering Customer Identification");
      MT102PLUS.U0015 = new SwiftTagSubItemDefinition("TypeOfIdentification", "Type Of Identification");
      MT102PLUS.U0014.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0015);
      MT102PLUS.U0016 = new SwiftTagSubItemDefinition("CountryCode", "Country Code");
      MT102PLUS.U0014.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0016);
      MT102PLUS.U0017 = new SwiftTagSubItemDefinition("Identification", "Identification");
      MT102PLUS.U0014.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0017);
      MT102PLUS.U0011.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0014);
      MT102PLUS.U0018 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT102PLUS.U0011.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0018);
      MT102PLUS.U0007.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0011);
      MT102PLUS.U0019 = new SwiftTagDefinition("OrderingCustomer_A_50K", "Ordering Customer");
      MT102PLUS.U0019.TagName = ":50K:";
      MT102PLUS.U001A = new SwiftTagSubItemDefinition("Account", "Account");
      MT102PLUS.U001A.Mandatory = false;
      MT102PLUS.U001B = new SwiftTagSubItemDefinition("Account_1", "");
      MT102PLUS.U001A.Elements.Add((SwiftDefinitionElement) MT102PLUS.U001B);
      MT102PLUS.U0019.Elements.Add((SwiftDefinitionElement) MT102PLUS.U001A);
      MT102PLUS.U001C = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT102PLUS.U0019.Elements.Add((SwiftDefinitionElement) MT102PLUS.U001C);
      MT102PLUS.U0007.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0019);
      MT102PLUS.U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0007);
      MT102PLUS.U001D = new SwiftTagDefinition("OrderingInstitution_A_52A", "Ordering Institution");
      MT102PLUS.U001D.TagName = ":52A:";
      MT102PLUS.U001D.Mandatory = false;
      MT102PLUS.U001E = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT102PLUS.U001E.Mandatory = false;
      MT102PLUS.U001D.Elements.Add((SwiftDefinitionElement) MT102PLUS.U001E);
      MT102PLUS.U001F = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT102PLUS.U001D.Elements.Add((SwiftDefinitionElement) MT102PLUS.U001F);
      MT102PLUS.U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U001D);
      MT102PLUS.U007F = new SwiftTagDefinition("TransactionTypeCode_A_26T", "Transaction Type Code");
      MT102PLUS.U007F.TagName = ":26T:";
      MT102PLUS.U007F.Mandatory = false;
      MT102PLUS.U0080 = new SwiftTagSubItemDefinition("TransactionTypeCode", "Code");
      MT102PLUS.U007F.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0080);
      MT102PLUS.U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U007F);
      MT102PLUS.U0081 = new SwiftTagDefinition("RegulatoryReporting_A_77B", "Regulatory Reporting");
      MT102PLUS.U0081.TagName = ":77B:";
      MT102PLUS.U0081.Mandatory = false;
      MT102PLUS.U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0081);
      MT102PLUS.U0082 = new SwiftTagDefinition("DetailsOfCharges_A_71A", "Detail Of Charges");
      MT102PLUS.U0082.TagName = ":71A:";
      MT102PLUS.U0082.Mandatory = false;
      MT102PLUS.U0083 = new SwiftTagSubItemDefinition("Code", "Code");
      MT102PLUS.U0082.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0083);
      MT102PLUS.U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0082);
      MT102PLUS.U0084 = new SwiftTagDefinition("ExchangeRate_A_36", "Exchange Rate");
      MT102PLUS.U0084.TagName = ":36:";
      MT102PLUS.U0084.Mandatory = false;
      MT102PLUS.U0086 = new SwiftTagSubItemDefinition("Rate", "");
      MT102PLUS.U0084.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0086);
      MT102PLUS.U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0084);
      MT102PLUS.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0002);
      MT102PLUS.U0087 = new SwiftTagSequenceDefinition("SequenceB", "Transaction Details");
      MT102PLUS.U0087.Multiple = true;
      MT102PLUS.U0088 = new SwiftTagDefinition("TransactionReference_B_21", "Transaction Reference");
      MT102PLUS.U0088.TagName = ":21:";
      MT102PLUS.U0089 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT102PLUS.U0088.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0089);
      MT102PLUS.U0087.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0088);
      MT102PLUS.U008A = new SwiftTagDefinition("TransactionAmount_B_32B", "Transaction Amount");
      MT102PLUS.U008A.TagName = ":32B:";
      MT102PLUS.U008B = new SwiftTagSubItemDefinition("Currency", "");
      MT102PLUS.U008A.Elements.Add((SwiftDefinitionElement) MT102PLUS.U008B);
      MT102PLUS.U008C = new SwiftTagSubItemDefinition("Amount", "");
      MT102PLUS.U008A.Elements.Add((SwiftDefinitionElement) MT102PLUS.U008C);
      MT102PLUS.U0087.Elements.Add((SwiftDefinitionElement) MT102PLUS.U008A);
      MT102PLUS.U008D = new SwiftTagChoiceDefinition("Choice", "");
      MT102PLUS.U008D.Mandatory = false;
      MT102PLUS.U008D.Multiple = true;
      MT102PLUS.U008E = new SwiftTagDefinition("OrderingCustomer_B_50A", "Ordering Customer");
      MT102PLUS.U008E.TagName = ":50A:";
      MT102PLUS.U008F = new SwiftTagSubItemDefinition("Account", "Account");
      MT102PLUS.U008F.Mandatory = false;
      MT102PLUS.U0090 = new SwiftTagSubItemDefinition("Account_1", "");
      MT102PLUS.U008F.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0090);
      MT102PLUS.U008E.Elements.Add((SwiftDefinitionElement) MT102PLUS.U008F);
      MT102PLUS.U0091 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT102PLUS.U008E.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0091);
      MT102PLUS.U008D.Elements.Add((SwiftDefinitionElement) MT102PLUS.U008E);
      MT102PLUS.U0092 = new SwiftTagDefinition("OrderingCustomer_B_50F", "Ordering Customer");
      MT102PLUS.U0092.TagName = ":50F";
      MT102PLUS.U0093 = new SwiftTagSubItemDefinition("OrderingCustomerIdentification_1", "Account");
      MT102PLUS.U0094 = new SwiftTagSubItemDefinition("Account", "");
      MT102PLUS.U0093.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0094);
      MT102PLUS.U0092.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0093);
      MT102PLUS.U0095 = new SwiftTagSubItemDefinition("OrderingCustomerIdentification_2", "Ordering Customer Identification");
      MT102PLUS.U0096 = new SwiftTagSubItemDefinition("TypeOfIdentification", "Type Of Identification");
      MT102PLUS.U0095.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0096);
      MT102PLUS.U0097 = new SwiftTagSubItemDefinition("CountryCode", "Country Code");
      MT102PLUS.U0095.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0097);
      MT102PLUS.U0098 = new SwiftTagSubItemDefinition("Identification", "Identification");
      MT102PLUS.U0095.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0098);
      MT102PLUS.U0092.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0095);
      MT102PLUS.U0099 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT102PLUS.U0092.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0099);
      MT102PLUS.U008D.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0092);
      MT102PLUS.U009A = new SwiftTagDefinition("OrderingCustomer_B_50K", "Ordering Customer");
      MT102PLUS.U009A.TagName = ":50K:";
      MT102PLUS.U009B = new SwiftTagSubItemDefinition("Account", "Account");
      MT102PLUS.U009B.Mandatory = false;
      MT102PLUS.U009C = new SwiftTagSubItemDefinition("Account_1", "");
      MT102PLUS.U009B.Elements.Add((SwiftDefinitionElement) MT102PLUS.U009C);
      MT102PLUS.U009A.Elements.Add((SwiftDefinitionElement) MT102PLUS.U009B);
      MT102PLUS.U009D = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT102PLUS.U009A.Elements.Add((SwiftDefinitionElement) MT102PLUS.U009D);
      MT102PLUS.U008D.Elements.Add((SwiftDefinitionElement) MT102PLUS.U009A);
      MT102PLUS.U0087.Elements.Add((SwiftDefinitionElement) MT102PLUS.U008D);
      MT102PLUS.U009E = new SwiftTagDefinition("OrderingInstitution_B_52A", "Ordering Institution");
      MT102PLUS.U009E.TagName = ":52A:";
      MT102PLUS.U009E.Mandatory = false;
      MT102PLUS.U009F = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT102PLUS.U009F.Mandatory = false;
      MT102PLUS.U009E.Elements.Add((SwiftDefinitionElement) MT102PLUS.U009F);
      MT102PLUS.U0001U0002 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT102PLUS.U009E.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0001U0002);
      MT102PLUS.U0087.Elements.Add((SwiftDefinitionElement) MT102PLUS.U009E);
      MT102PLUS.U0002U0002 = new SwiftTagDefinition("AccountWithInstitution_B_57A", "Account With Institution");
      MT102PLUS.U0002U0002.TagName = ":57A:";
      MT102PLUS.U0002U0002.Mandatory = false;
      MT102PLUS.U0003U0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT102PLUS.U0003U0002.Mandatory = false;
      MT102PLUS.U0002U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0003U0002);
      MT102PLUS.U0004U0002 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT102PLUS.U0002U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0004U0002);
      MT102PLUS.U0087.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0002U0002);
      MT102PLUS.U0005U0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT102PLUS.U0005U0002.Multiple = true;
      MT102PLUS.U0006U0002 = new SwiftTagDefinition("BeneficiaryCustomer_B_59A", "Beneficiary");
      MT102PLUS.U0006U0002.TagName = ":59A:";
      MT102PLUS.U0007U0002 = new SwiftTagSubItemDefinition("Account", "Account");
      MT102PLUS.U0007U0002.Mandatory = false;
      MT102PLUS.U0008U0002 = new SwiftTagSubItemDefinition("Account_1", "");
      MT102PLUS.U0007U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0008U0002);
      MT102PLUS.U0006U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0007U0002);
      MT102PLUS.U000EU0002 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT102PLUS.U0006U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U000EU0002);
      MT102PLUS.U0005U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0006U0002);
      MT102PLUS.U000FU0002 = new SwiftTagDefinition("BeneficiaryCustomer_B_59", "Beneficiary");
      MT102PLUS.U000FU0002.TagName = ":59:";
      MT102PLUS.U0010U0002 = new SwiftTagSubItemDefinition("Account", "Account");
      MT102PLUS.U0010U0002.Mandatory = false;
      MT102PLUS.U0011U0002 = new SwiftTagSubItemDefinition("Account_1", "");
      MT102PLUS.U0010U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0011U0002);
      MT102PLUS.U000FU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0010U0002);
      MT102PLUS.U0012U0002 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT102PLUS.U000FU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0012U0002);
      MT102PLUS.U0005U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U000FU0002);
      MT102PLUS.U0087.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0005U0002);
      MT102PLUS.U0013U0002 = new SwiftTagDefinition("RemittanceInformation_B_70", "Remittance Information");
      MT102PLUS.U0013U0002.TagName = ":70:";
      MT102PLUS.U0013U0002.Mandatory = false;
      MT102PLUS.U0087.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0013U0002);
      MT102PLUS.U0014U0002 = new SwiftTagDefinition("TransactionTypeCode_B_26T", "Transaction Type Code");
      MT102PLUS.U0014U0002.TagName = ":26T:";
      MT102PLUS.U0014U0002.Mandatory = false;
      MT102PLUS.U0015U0002 = new SwiftTagSubItemDefinition("TransactionTypeCode", "");
      MT102PLUS.U0014U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0015U0002);
      MT102PLUS.U0087.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0014U0002);
      MT102PLUS.U0016U0002 = new SwiftTagDefinition("RegulatoryReporting_B_77B", "Regulatory Reporting");
      MT102PLUS.U0016U0002.TagName = ":77B:";
      MT102PLUS.U0016U0002.Mandatory = false;
      MT102PLUS.U0087.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0016U0002);
      MT102PLUS.U0017U0002 = new SwiftTagDefinition("CurrencyInstructedAmount_B_33B", "Currency/Original Ordered Amount");
      MT102PLUS.U0017U0002.TagName = ":33B:";
      MT102PLUS.U0017U0002.Mandatory = false;
      MT102PLUS.U0018U0002 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT102PLUS.U0017U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0018U0002);
      MT102PLUS.U0019U0002 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT102PLUS.U0017U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0019U0002);
      MT102PLUS.U0087.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0017U0002);
      MT102PLUS.U001AU0002 = new SwiftTagDefinition("DetailsOfCharges_B_71A", "Detail Of Charges");
      MT102PLUS.U001AU0002.TagName = ":71A:";
      MT102PLUS.U001AU0002.Mandatory = false;
      MT102PLUS.U001BU0002 = new SwiftTagSubItemDefinition("Code", "Code");
      MT102PLUS.U001AU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U001BU0002);
      MT102PLUS.U0087.Elements.Add((SwiftDefinitionElement) MT102PLUS.U001AU0002);
      MT102PLUS.U001CU0002 = new SwiftTagDefinition("SendersCharges_B_71F", "Sender's Charges");
      MT102PLUS.U001CU0002.TagName = ":71F:";
      MT102PLUS.U001CU0002.Mandatory = false;
      MT102PLUS.U001CU0002.Multiple = true;
      MT102PLUS.U001DU0002 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT102PLUS.U001CU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U001DU0002);
      MT102PLUS.U001EU0002 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT102PLUS.U001CU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U001EU0002);
      MT102PLUS.U0087.Elements.Add((SwiftDefinitionElement) MT102PLUS.U001CU0002);
      MT102PLUS.U001FU0002 = new SwiftTagDefinition("ReceiversCharges_B_71G", "Receiver's Charges");
      MT102PLUS.U001FU0002.TagName = ":71G:";
      MT102PLUS.U001FU0002.Mandatory = false;
      MT102PLUS.U007FU0002 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT102PLUS.U001FU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U007FU0002);
      MT102PLUS.U0080U0002 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT102PLUS.U001FU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0080U0002);
      MT102PLUS.U0087.Elements.Add((SwiftDefinitionElement) MT102PLUS.U001FU0002);
      MT102PLUS.U0081U0002 = new SwiftTagDefinition("ExchangeRate_B_36", "Exchange Rate");
      MT102PLUS.U0081U0002.TagName = ":36:";
      MT102PLUS.U0081U0002.Mandatory = false;
      MT102PLUS.U0082U0002 = new SwiftTagSubItemDefinition("Rate", "");
      MT102PLUS.U0081U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0082U0002);
      MT102PLUS.U0087.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0081U0002);
      MT102PLUS.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0087);
      MT102PLUS.U0083U0002 = new SwiftTagSequenceDefinition("SequenceC", "Settlement Details");
      MT102PLUS.U0084U0002 = new SwiftTagDefinition("ValueDateCurrencyCodeAmount_C_32A", "Value Date, Currency Code, Amount");
      MT102PLUS.U0084U0002.TagName = ":32A:";
      MT102PLUS.U0086U0002 = new SwiftTagSubItemDefinition("Date", "Date");
      MT102PLUS.U0084U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0086U0002);
      MT102PLUS.U0087U0002 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT102PLUS.U0084U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0087U0002);
      MT102PLUS.U0088U0002 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT102PLUS.U0084U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0088U0002);
      MT102PLUS.U0083U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0084U0002);
      MT102PLUS.U0089U0002 = new SwiftTagDefinition("SumOfAmounts_C_19", "Sum Of Amounts");
      MT102PLUS.U0089U0002.TagName = ":19:";
      MT102PLUS.U0089U0002.Mandatory = false;
      MT102PLUS.U008AU0002 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT102PLUS.U0089U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U008AU0002);
      MT102PLUS.U0083U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0089U0002);
      MT102PLUS.U008BU0002 = new SwiftTagDefinition("SumOfReceiversCharges_C_71G", "Receiver's Charges");
      MT102PLUS.U008BU0002.TagName = ":71G:";
      MT102PLUS.U008BU0002.Mandatory = false;
      MT102PLUS.U008CU0002 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT102PLUS.U008BU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U008CU0002);
      MT102PLUS.U008DU0002 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT102PLUS.U008BU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U008DU0002);
      MT102PLUS.U0083U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U008BU0002);
      MT102PLUS.U008EU0002 = new SwiftTagDefinition("TimeIndication_C_13C", "Time Indication");
      MT102PLUS.U008EU0002.TagName = ":13C:";
      MT102PLUS.U008EU0002.Mandatory = false;
      MT102PLUS.U008EU0002.Multiple = true;
      MT102PLUS.U008FU0002 = new SwiftTagSubItemDefinition("Code", "Code");
      MT102PLUS.U0090U0002 = new SwiftTagSubItemDefinition("Code_1", "Code");
      MT102PLUS.U008FU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0090U0002);
      MT102PLUS.U008EU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U008FU0002);
      MT102PLUS.U0091U0002 = new SwiftTagSubItemDefinition("TimeIndication", "TimeIndication Sign TimeOffset");
      MT102PLUS.U0092U0002 = new SwiftTagSubItemDefinition("TimeIndication_1", "Time Indication");
      MT102PLUS.U0091U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0092U0002);
      MT102PLUS.U0093U0002 = new SwiftTagSubItemDefinition("Sign", "Sign");
      MT102PLUS.U0091U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0093U0002);
      MT102PLUS.U0094U0002 = new SwiftTagSubItemDefinition("TimeOffset", "Time Offset");
      MT102PLUS.U0091U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0094U0002);
      MT102PLUS.U008EU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0091U0002);
      MT102PLUS.U0083U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U008EU0002);
      MT102PLUS.U0095U0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT102PLUS.U0095U0002.Mandatory = false;
      MT102PLUS.U0095U0002.Multiple = true;
      MT102PLUS.U0096U0002 = new SwiftTagDefinition("SendersCorrespondent_C_53A", "Sender's Correspondent");
      MT102PLUS.U0096U0002.TagName = ":53A:";
      MT102PLUS.U0097U0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT102PLUS.U0097U0002.Mandatory = false;
      MT102PLUS.U0096U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0097U0002);
      MT102PLUS.U0098U0002 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT102PLUS.U0096U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0098U0002);
      MT102PLUS.U0095U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0096U0002);
      MT102PLUS.U0099U0002 = new SwiftTagDefinition("SendersCorrespondent_C_53C", "");
      MT102PLUS.U0099U0002.TagName = ":53C:";
      MT102PLUS.U009AU0002 = new SwiftTagSubItemDefinition("Account", "Account");
      MT102PLUS.U0099U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U009AU0002);
      MT102PLUS.U0095U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0099U0002);
      MT102PLUS.U0083U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0095U0002);
      MT102PLUS.U009BU0002 = new SwiftTagDefinition("ReceiversCorrespondent_C_54A", "Receiver's Correspondent");
      MT102PLUS.U009BU0002.TagName = ":54A:";
      MT102PLUS.U009BU0002.Mandatory = false;
      MT102PLUS.U009CU0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT102PLUS.U009CU0002.Mandatory = false;
      MT102PLUS.U009BU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U009CU0002);
      MT102PLUS.U009DU0002 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT102PLUS.U009BU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U009DU0002);
      MT102PLUS.U0083U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U009BU0002);
      MT102PLUS.U009EU0002 = new SwiftTagDefinition("SenderToReceiverInformation_C_72", "Sender To Receiver Information");
      MT102PLUS.U009EU0002.TagName = ":72:";
      MT102PLUS.U009EU0002.Mandatory = false;
      MT102PLUS.U009FU0002 = new SwiftTagSubItemDefinition("Line1", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x]");
      MT102PLUS.U009EU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U009FU0002);
      MT102PLUS.U0001U0003 = new SwiftTagSubItemDefinition("Line2", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x] or [//33x]");
      MT102PLUS.U0001U0003.Mandatory = false;
      MT102PLUS.U009EU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0001U0003);
      MT102PLUS.U0002U0003 = new SwiftTagSubItemDefinition("Line3", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x] or [//33x]");
      MT102PLUS.U0002U0003.Mandatory = false;
      MT102PLUS.U009EU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0002U0003);
      MT102PLUS.U0003U0003 = new SwiftTagSubItemDefinition("Line4", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x] or [//33x]");
      MT102PLUS.U0003U0003.Mandatory = false;
      MT102PLUS.U009EU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0003U0003);
      MT102PLUS.U0004U0003 = new SwiftTagSubItemDefinition("Line5", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x] or [//33x]");
      MT102PLUS.U0004U0003.Mandatory = false;
      MT102PLUS.U009EU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0004U0003);
      MT102PLUS.U0005U0003 = new SwiftTagSubItemDefinition("Line6", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x] or [//33x]");
      MT102PLUS.U0005U0003.Mandatory = false;
      MT102PLUS.U009EU0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0005U0003);
      MT102PLUS.U0083U0002.Elements.Add((SwiftDefinitionElement) MT102PLUS.U009EU0002);
      MT102PLUS.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT102PLUS.U0083U0002);
    }

    public class SequenceAClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT102PLUS.U0002;
        }
      }

      [Description("File Reference")]
      public Tag20 FileReference_A_20
      {
        get
        {
          return new Tag20((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0003);
        }
      }

      [Description("File Reference")]
      public Tag20 Tag20_FileReference_A
      {
        get
        {
          return this.FileReference_A_20;
        }
      }

      [Description("Bank Operation Code")]
      public MT102PLUS.SequenceAClass.Tag23 BankOperationCode_A_23
      {
        get
        {
          return new MT102PLUS.SequenceAClass.Tag23((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0005);
        }
      }

      [Description("Bank Operation Code")]
      public MT102PLUS.SequenceAClass.Tag23 Tag23_BankOperationCode_A
      {
        get
        {
          return this.BankOperationCode_A_23;
        }
      }

      [Description("Ordering Customer")]
      public Tag50A OrderingCustomer_A_50A
      {
        get
        {
          return new Tag50A((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0008);
        }
      }

      [Description("Ordering Customer")]
      public Tag50A Tag50A_OrderingCustomer_A
      {
        get
        {
          return this.OrderingCustomer_A_50A;
        }
      }

      [Description("Ordering Customer")]
      public Tag50F OrderingCustomer_A_50F
      {
        get
        {
          return new Tag50F((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0011);
        }
      }

      [Description("Ordering Customer")]
      public Tag50F Tag50F_OrderingCustomer_A
      {
        get
        {
          return this.OrderingCustomer_A_50F;
        }
      }

      [Description("Ordering Customer")]
      public Tag50K OrderingCustomer_A_50K
      {
        get
        {
          return new Tag50K((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0019);
        }
      }

      [Description("Ordering Customer")]
      public Tag50K Tag50K_OrderingCustomer_A
      {
        get
        {
          return this.OrderingCustomer_A_50K;
        }
      }

      [Description("Ordering Institution")]
      public Tag52A OrderingInstitution_A_52A
      {
        get
        {
          return new Tag52A((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U001D);
        }
      }

      [Description("Ordering Institution")]
      public Tag52A Tag52A_OrderingInstitution_A
      {
        get
        {
          return this.OrderingInstitution_A_52A;
        }
      }

      [Description("Transaction Type Code")]
      public MT102PLUS.SequenceAClass.Tag26T TransactionTypeCode_A_26T
      {
        get
        {
          return new MT102PLUS.SequenceAClass.Tag26T((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U007F);
        }
      }

      [Description("Transaction Type Code")]
      public MT102PLUS.SequenceAClass.Tag26T Tag26T_TransactionTypeCode_A
      {
        get
        {
          return this.TransactionTypeCode_A_26T;
        }
      }

      [Description("Regulatory Reporting")]
      public Tag77B RegulatoryReporting_A_77B
      {
        get
        {
          return new Tag77B((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0081);
        }
      }

      [Description("Regulatory Reporting")]
      public Tag77B Tag77B_RegulatoryReporting_A
      {
        get
        {
          return this.RegulatoryReporting_A_77B;
        }
      }

      [Description("Detail Of Charges")]
      public Tag71A DetailsOfCharges_A_71A
      {
        get
        {
          return new Tag71A((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0082);
        }
      }

      [Description("Detail Of Charges")]
      public Tag71A Tag71A_DetailsOfCharges_A
      {
        get
        {
          return this.DetailsOfCharges_A_71A;
        }
      }

      [Description("Exchange Rate")]
      public Tag36 ExchangeRate_A_36
      {
        get
        {
          return new Tag36((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0084);
        }
      }

      [Description("Exchange Rate")]
      public Tag36 Tag36_ExchangeRate_A
      {
        get
        {
          return this.ExchangeRate_A_36;
        }
      }

      internal SequenceAClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public class Tag23 : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("23", value);
          }
        }

        internal Tag23(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }

      public class Tag26T : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("26T", value);
          }
        }

        internal Tag26T(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }
    }

    public class SequenceBClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT102PLUS.U0087;
        }
      }

      [Description("Transaction Reference")]
      public Tag21 TransactionReference_B_21
      {
        get
        {
          return new Tag21((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0088);
        }
      }

      [Description("Transaction Reference")]
      public Tag21 Tag21_TransactionReference_B
      {
        get
        {
          return this.TransactionReference_B_21;
        }
      }

      [Description("Transaction Amount")]
      public Tag32B TransactionAmount_B_32B
      {
        get
        {
          return new Tag32B((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U008A);
        }
      }

      [Description("Transaction Amount")]
      public Tag32B Tag32B_TransactionAmount_B
      {
        get
        {
          return this.TransactionAmount_B_32B;
        }
      }

      [Description("Ordering Customer")]
      public Tag50A OrderingCustomer_B_50A
      {
        get
        {
          return new Tag50A((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U008E);
        }
      }

      [Description("Ordering Customer")]
      public Tag50A Tag50A_OrderingCustomer_B
      {
        get
        {
          return this.OrderingCustomer_B_50A;
        }
      }

      [Description("Ordering Customer")]
      public Tag50F OrderingCustomer_B_50F
      {
        get
        {
          return new Tag50F((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0092);
        }
      }

      [Description("Ordering Customer")]
      public Tag50F Tag50F_OrderingCustomer_B
      {
        get
        {
          return this.OrderingCustomer_B_50F;
        }
      }

      [Description("Ordering Customer")]
      public Tag50K OrderingCustomer_B_50K
      {
        get
        {
          return new Tag50K((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U009A);
        }
      }

      [Description("Ordering Customer")]
      public Tag50K Tag50K_OrderingCustomer_B
      {
        get
        {
          return this.OrderingCustomer_B_50K;
        }
      }

      [Description("Ordering Institution")]
      public Tag52A OrderingInstitution_B_52A
      {
        get
        {
          return new Tag52A((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U009E);
        }
      }

      [Description("Ordering Institution")]
      public Tag52A Tag52A_OrderingInstitution_B
      {
        get
        {
          return this.OrderingInstitution_B_52A;
        }
      }

      [Description("Account With Institution")]
      public Tag57A AccountWithInstitution_B_57A
      {
        get
        {
          return new Tag57A((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0002U0002);
        }
      }

      [Description("Account With Institution")]
      public Tag57A Tag57A_AccountWithInstitution_B
      {
        get
        {
          return this.AccountWithInstitution_B_57A;
        }
      }

      [Description("Beneficiary")]
      public Tag59A BeneficiaryCustomer_B_59A
      {
        get
        {
          return new Tag59A((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0006U0002);
        }
      }

      [Description("Beneficiary")]
      public Tag59A Tag59A_BeneficiaryCustomer_B
      {
        get
        {
          return this.BeneficiaryCustomer_B_59A;
        }
      }

      [Description("Beneficiary")]
      public MT102PLUS.SequenceBClass.Tag59 BeneficiaryCustomer_B_59
      {
        get
        {
          return new MT102PLUS.SequenceBClass.Tag59((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U000FU0002);
        }
      }

      [Description("Beneficiary")]
      public MT102PLUS.SequenceBClass.Tag59 Tag59_BeneficiaryCustomer_B
      {
        get
        {
          return this.BeneficiaryCustomer_B_59;
        }
      }

      [Description("Remittance Information")]
      public Tag70 RemittanceInformation_B_70
      {
        get
        {
          return new Tag70((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0013U0002);
        }
      }

      [Description("Remittance Information")]
      public Tag70 Tag70_RemittanceInformation_B
      {
        get
        {
          return this.RemittanceInformation_B_70;
        }
      }

      [Description("Transaction Type Code")]
      public MT102PLUS.SequenceBClass.Tag26T TransactionTypeCode_B_26T
      {
        get
        {
          return new MT102PLUS.SequenceBClass.Tag26T((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0014U0002);
        }
      }

      [Description("Transaction Type Code")]
      public MT102PLUS.SequenceBClass.Tag26T Tag26T_TransactionTypeCode_B
      {
        get
        {
          return this.TransactionTypeCode_B_26T;
        }
      }

      [Description("Regulatory Reporting")]
      public Tag77B RegulatoryReporting_B_77B
      {
        get
        {
          return new Tag77B((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0016U0002);
        }
      }

      [Description("Regulatory Reporting")]
      public Tag77B Tag77B_RegulatoryReporting_B
      {
        get
        {
          return this.RegulatoryReporting_B_77B;
        }
      }

      [Description("Currency/Original Ordered Amount")]
      public Tag33B CurrencyInstructedAmount_B_33B
      {
        get
        {
          return new Tag33B((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0017U0002);
        }
      }

      [Description("Currency/Original Ordered Amount")]
      public Tag33B Tag33B_CurrencyInstructedAmount_B
      {
        get
        {
          return this.CurrencyInstructedAmount_B_33B;
        }
      }

      [Description("Detail Of Charges")]
      public Tag71A DetailsOfCharges_B_71A
      {
        get
        {
          return new Tag71A((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U001AU0002);
        }
      }

      [Description("Detail Of Charges")]
      public Tag71A Tag71A_DetailsOfCharges_B
      {
        get
        {
          return this.DetailsOfCharges_B_71A;
        }
      }

      [Description("Sender's Charges")]
      public Tag71F[] SendersCharges_B_71F
      {
        get
        {
          int index = -1;
          List<Tag71F> list = new List<Tag71F>();
          int count;
          do
          {
            ++index;
            Tag71F tag71F = new Tag71F((SwiftElement) this, index, (SwiftDefinitionElement) MT102PLUS.U001CU0002);
            count = this.ListTags((SwiftElement) tag71F).Count;
            if (count > 0)
              list.Add(tag71F);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Sender's Charges")]
      public Tag71F[] Tag71F_SendersCharges_B
      {
        get
        {
          return this.SendersCharges_B_71F;
        }
      }

      [Description("Receiver's Charges")]
      public Tag71G ReceiversCharges_B_71G
      {
        get
        {
          return new Tag71G((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U001FU0002);
        }
      }

      [Description("Receiver's Charges")]
      public Tag71G Tag71G_ReceiversCharges_B
      {
        get
        {
          return this.ReceiversCharges_B_71G;
        }
      }

      [Description("Exchange Rate")]
      public Tag36 ExchangeRate_B_36
      {
        get
        {
          return new Tag36((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0081U0002);
        }
      }

      [Description("Exchange Rate")]
      public Tag36 Tag36_ExchangeRate_B
      {
        get
        {
          return this.ExchangeRate_B_36;
        }
      }

      internal SequenceBClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public Tag71F AddSendersCharges_B_71F()
      {
        return new Tag71F((SwiftElement) this, this.SendersCharges_B_71F.Length, (SwiftDefinitionElement) MT102PLUS.U001CU0002)
        {
          Value = string.Empty
        };
      }

      public void RemoveSendersCharges_B_71F(Tag71F tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public class Tag59 : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("59", value);
          }
        }

        internal Tag59(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }

      public class Tag26T : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("26T", value);
          }
        }

        internal Tag26T(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }
    }

    public class SequenceCClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT102PLUS.U0083U0002;
        }
      }

      [Description("Value Date, Currency Code, Amount")]
      public Tag32A ValueDateCurrencyCodeAmount_C_32A
      {
        get
        {
          return new Tag32A((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0084U0002);
        }
      }

      [Description("Value Date, Currency Code, Amount")]
      public Tag32A Tag32A_ValueDateCurrencyCodeAmount_C
      {
        get
        {
          return this.ValueDateCurrencyCodeAmount_C_32A;
        }
      }

      [Description("Sum Of Amounts")]
      public Tag19 SumOfAmounts_C_19
      {
        get
        {
          return new Tag19((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0089U0002);
        }
      }

      [Description("Sum Of Amounts")]
      public Tag19 Tag19_SumOfAmounts_C
      {
        get
        {
          return this.SumOfAmounts_C_19;
        }
      }

      [Description("Receiver's Charges")]
      public Tag71G SumOfReceiversCharges_C_71G
      {
        get
        {
          return new Tag71G((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U008BU0002);
        }
      }

      [Description("Receiver's Charges")]
      public Tag71G Tag71G_SumOfReceiversCharges_C
      {
        get
        {
          return this.SumOfReceiversCharges_C_71G;
        }
      }

      [Description("Time Indication")]
      public MT102PLUS.SequenceCClass.Tag13C[] TimeIndication_C_13C
      {
        get
        {
          int index = -1;
          List<MT102PLUS.SequenceCClass.Tag13C> list = new List<MT102PLUS.SequenceCClass.Tag13C>();
          int count;
          do
          {
            ++index;
            MT102PLUS.SequenceCClass.Tag13C tag13C = new MT102PLUS.SequenceCClass.Tag13C((SwiftElement) this, index, (SwiftDefinitionElement) MT102PLUS.U008EU0002);
            count = this.ListTags((SwiftElement) tag13C).Count;
            if (count > 0)
              list.Add(tag13C);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Time Indication")]
      public MT102PLUS.SequenceCClass.Tag13C[] Tag13C_TimeIndication_C
      {
        get
        {
          return this.TimeIndication_C_13C;
        }
      }

      [Description("Sender's Correspondent")]
      public Tag53A SendersCorrespondent_C_53A
      {
        get
        {
          return new Tag53A((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0096U0002);
        }
      }

      [Description("Sender's Correspondent")]
      public Tag53A Tag53A_SendersCorrespondent_C
      {
        get
        {
          return this.SendersCorrespondent_C_53A;
        }
      }

      [Description("")]
      public Tag53C SendersCorrespondent_C_53C
      {
        get
        {
          return new Tag53C((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U0099U0002);
        }
      }

      [Description("")]
      public Tag53C Tag53C_SendersCorrespondent_C
      {
        get
        {
          return this.SendersCorrespondent_C_53C;
        }
      }

      [Description("Receiver's Correspondent")]
      public Tag54A ReceiversCorrespondent_C_54A
      {
        get
        {
          return new Tag54A((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U009BU0002);
        }
      }

      [Description("Receiver's Correspondent")]
      public Tag54A Tag54A_ReceiversCorrespondent_C
      {
        get
        {
          return this.ReceiversCorrespondent_C_54A;
        }
      }

      [Description("Sender To Receiver Information")]
      public Tag72 SenderToReceiverInformation_C_72
      {
        get
        {
          return new Tag72((SwiftElement) this, 0, (SwiftDefinitionElement) MT102PLUS.U009EU0002);
        }
      }

      [Description("Sender To Receiver Information")]
      public Tag72 Tag72_SenderToReceiverInformation_C
      {
        get
        {
          return this.SenderToReceiverInformation_C_72;
        }
      }

      internal SequenceCClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public MT102PLUS.SequenceCClass.Tag13C AddTimeIndication_C_13C()
      {
        return new MT102PLUS.SequenceCClass.Tag13C((SwiftElement) this, this.TimeIndication_C_13C.Length, (SwiftDefinitionElement) MT102PLUS.U008EU0002)
        {
          Value = string.Empty
        };
      }

      public void RemoveTimeIndication_C_13C(MT102PLUS.SequenceCClass.Tag13C tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public class Tag13C : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("13C", value);
          }
        }

        internal Tag13C(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }
    }
  }
}
